package aip.project.service;

import java.util.List;
import java.util.Map;

import org.slim3.controller.upload.FileItem;
import org.slim3.datastore.Datastore;
import org.slim3.util.BeanUtil;

import aip.project.meta.RicetteMeta;
import aip.project.model.Prodotto;
import aip.project.model.Ricette;

import com.google.appengine.api.datastore.Blob;
import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.Transaction;


public class RicetteService {

    private RicetteMeta meta = new RicetteMeta();

    public List<Ricette> getRicettaList(){
        return Datastore.query(meta).sort(meta.nome.asc).asList();
    }
    
    public Ricette getRicetta(Key k){
        Ricette r = Datastore.get(Ricette.class,k);
        return r;
    }
    
   /* public List<Ricette> getRicette(Key k){
        return Datastore.get(Prodotto.class,k).getRicetteListRef().getModelList();
    }*/
    
    public List<Prodotto> getProdottiInUso(Key k){
        return Datastore.get(Ricette.class, k).getProdottiInUsoListRef().getModelList();
    }
    
    public void removeRicetta (Key k){
        Datastore.delete(k);
    }
    
    public Key addRicetta (Map<String, Object> nome){
        Ricette r = new Ricette();
        BeanUtil.copy(nome, r);
        FileItem imageFile = (FileItem) nome.get("image");
        if (imageFile != null) {
            r.setFoto(new Blob(imageFile.getData()));
        }
        Transaction tx = Datastore.beginTransaction();
        Datastore.put(r);
        tx.commit();
        return r.getKey();
    }
}
